package com.hfh.jdbc;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Locale;
import java.util.Properties;
import java.util.ResourceBundle;

/**
 * @Author hfh
 * @Date 2022 09 16 20 02
 **/
public class JavaProgrammer {

    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, IOException {

        /*
        * 利用配置文件
        * 这种方法的好处是
        * 当需要修改内容时只需要修改配置文件里的参数
        * 而且因为java文件并未发生变话因此这种方式修改完不用重新编译java文件*/
        Properties properties = new Properties();
        InputStream is = new FileInputStream("day26/src/com/hfh/jdbc.properties");
        properties.load(is);
        String className = properties.getProperty("className");

//        ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
//        String className = bundle.getString("className");

        Class<?> clazz = Class.forName(className);
        /*
        反射机制
        只需修改类名但是，还是修改了java代码
        因此还要编译再运行
        */
//        Class<?> clazz = Class.forName("com.hfh.jdbc.MySql");
        JDBC jdbc = (JDBC) clazz.newInstance();

        /*直接创建对象
        JDBC jdbc = new MySql();
        这种方法不利于修改
         */
        jdbc.getConnection();
    }
}
